package com.lx.algorithm.temp;

/**
 * Description:
 * Copyright:   Copyright (c)2019
 * Company:     zefu
 *
 * @author: 张李鑫
 * @version: 1.0
 * Create at:   2021-10-26 11:33:45
 * <p>
 * Modification History:
 * Date         Author      Version     Description
 * ------------------------------------------------------------------
 * 2021-10-26     张李鑫                     1.0         1.0 Version
 */
public class PrintString {

    /**
     * 打印n层汉诺塔从最左边移动到最右边的全部过程
     *
     * 打印一个字符串的全部子序列
     *
     * 打印一个字符串的全部子序列，要求不要出现重复字面值的子序列
     *
     * 打印一个字符串的全部排列
     *
     * 打印一个字符串的全部排列，要求不要出现重复的排列
     */

    public static void main(String[] args) {
        //打印一个字符串的全部子序列
        printAll("abc");
        //打印一个字符串的全部子序列，要求不要出现重复字面值的子序列

    }

    public static void printAll(String val){
        if (null==val||val.length()==1){
            return;
        }
        char[] chars = val.toCharArray();

        printProcess(chars,"",0);

    }
    public static void printProcess(char []chars,String path,int index){
        if (index==chars.length){
            System.out.println(path);
            return;
        }
        printProcess(chars,path,index+1);
        printProcess(chars,path+chars[index],index+1);
    }



}
